#include "mainwindow.h"
#include "ui_mainwindow.h"

/*QPixmap: 用于加载和显示图片。
QFile: 用于读取样式表文件。
QMessageBox: 用于显示提示框。
QMouseEvent: 用于处理鼠标事件，实现窗口拖动。
QCheckBox: 用于检查用户是否选择了保存密码或自动登录。
QPushButton: 用于处理登录按钮的点击事件。*/
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    // 加载头像图片
    QPixmap pixmap;
    if (false == pixmap.load("E:/2.png")) {
        qDebug() << "加载失败" << endl;
    }

    // 设置头像图片并使其自适应大小
    ui->touxiang->setPixmap(pixmap);
    ui->touxiang->setScaledContents(true);

    // 读取并应用样式表文件
    QFile file(":/E:/【05临时文件】/test.qss");
    if (file.open(QFile::ReadOnly)) {
        QString stylesheet = QString(file.readAll());
        setStyleSheet(stylesheet);
        file.close();
    }

    // 去除窗口的边框
    setWindowFlag(Qt::FramelessWindowHint, true);
    // 使窗口背景透明
    setAttribute(Qt::WA_TranslucentBackground, true);

    // 连接标签的点击信号到槽函数
    connect(ui->label_3, SIGNAL(clicked()), this, SLOT(linkActivated()));

    // 初始化数据库操作类（注释掉了）
    // databaseop *mydatabase = new databaseop;
}

MainWindow::~MainWindow()
{
    delete ui; // 释放UI资源
}

// 标签点击槽函数，关闭窗口
void MainWindow::linkActivated()
{
    close();
}

// 按钮点击槽函数，处理登录逻辑
void MainWindow::on_pushButton_clicked()
{
    // 检查用户名和密码是否正确
    if (ui->user->text() == "1" && ui->passwd->text() == "1") {
        Form * pForm = new Form; // 创建并显示新的窗口
        pForm->show();
        hide(); // 隐藏当前窗口

        // 检查复选框状态并输出调试信息
        if (ui->checkBox->isChecked() == true) {
            qDebug() << "用户保存密码" << endl;
        }
        if (ui->checkBox_2->isChecked() == true) {
            qDebug() << "用户下次自动登录" << endl;
        }
    } else {
        // 显示登录失败提示框
        QMessageBox::about(this, "登录失败", "账号或密码错误，请重新输入");
    }
}

// 鼠标移动事件处理函数，实现窗口拖动
void MainWindow::mouseMoveEvent(QMouseEvent *e)
{
    if (e->buttons() & Qt::LeftButton) {
        move(e->globalPos() - m_dragPosition); // 移动窗口
        e->accept();
    }
}

// 鼠标按下事件处理函数，记录拖动起始位置
void MainWindow::mousePressEvent(QMouseEvent *e)
{
    if (e->button() == Qt::LeftButton) {
        m_dragPosition = e->globalPos() - frameGeometry().topLeft(); // 计算拖动起始位置
        e->accept();
    }
}


